﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using EFB.Lib.Repository;
using System.Text;

namespace EFB.Web.telasMobile.menu.OperacoesLogisticas
{
    public partial class PesquisaEstoque : BasePage
    {

        protected void Button1_Click(object sender, EventArgs e) {

            SqlHelper Sql = SqlHelper.Instance;
            try
            {
                Sql.Open();
                string sku = txtSku.Text;
                string rastreabilidade = txtRastreabilidade.Text;

                StringBuilder sb = new StringBuilder();
                
                sb.Append(" SELECT   EFB_ITEMIDENTIF.SKU_ID, EFB_SKU.DESCRITIVO, EFB_ITEMIDENTIF.RASTREABILIDADE,   ");
                sb.Append(" (EFB_ITEMIDENTIF.QTD_ORIGINAL - EFB_ITEMIDENTIF.QTD_RESERVADA - EFB_ITEMIDENTIF.QTD_BAIXADA) AS QTD_DISP, ");

                sb.Append("((EFB_ITEMIDENTIF.QTD_ORIGINAL - EFB_ITEMIDENTIF.QTD_RESERVADA - EFB_ITEMIDENTIF.QTD_BAIXADA) + ISNULL(SUM(EFB_ORDEMPROD.QTD_PROGRAMA - EFB_ORDEMPROD.QTD_ATENDIDA), 0)) - ISNULL(SUM(EFB_SKUFORMOP.QUANTIDADE), 0) AS QTD_PREV ");

                sb.Append(" FROM EFB_SKU INNER JOIN ");
                sb.Append(" EFB_ITEMIDENTIF ON EFB_SKU.SKU_ID = EFB_ITEMIDENTIF.SKU_ID ");

                sb.Append(" LEFT JOIN EFB_ORDEMPROD ON EFB_SKU.SKU_ID = EFB_ORDEMPROD.SKU_ID ");
                sb.Append(" AND  CONVERT(DATE, EFB_ORDEMPROD.DATA_PROGRAMA) >= CONVERT(DATE, GETDATE())  ");

                sb.Append(" LEFT JOIN EFB_SKUFORMOP ON EFB_SKUFORMOP.SKUENTRADA_ID = EFB_SKU.SKU_ID ");
                sb.Append(" AND EFB_SKUFORMOP.SKUFORMOP_ID = EFB_ORDEMPROD.OP_ID ");

                sb.Append(" WHERE 1 = 1 ");
                

                if (!(String.IsNullOrEmpty(sku)))
                {
                    sb.Append(" AND EFB_SKU.SKU_ID = " + "'" + sku + "'");
                }

                if (!(String.IsNullOrEmpty(rastreabilidade)))
                {
                    sb.Append(" AND EFB_ITEMIDENTIF.RASTREABILIDADE = " + "'" + rastreabilidade + "'");
                }

                if (ckSaldo.Checked)
                {
                    sb.Append(" AND (EFB_ITEMIDENTIF.QTD_ORIGINAL - EFB_ITEMIDENTIF.QTD_BAIXADA - EFB_ITEMIDENTIF.QTD_RESERVADA) > 0 ");
                }

                if (ckReserva.Checked)
                {
                   // sb.Append(" AND EFB_OPRESERV.STATUS_RESERV = 'A' ");
                }

                sb.Append(" group by EFB_ITEMIDENTIF.SKU_ID, EFB_SKU.DESCRITIVO, EFB_ITEMIDENTIF.RASTREABILIDADE, EFB_ITEMIDENTIF.QTD_ORIGINAL, EFB_ITEMIDENTIF.QTD_RESERVADA, EFB_ITEMIDENTIF.QTD_BAIXADA ");

                string query = sb.ToString();
                GridView1.DataSource = Sql.ExecuteReader(query);
                GridView1.DataBind();

                int qtRegistro = Convert.ToInt32(GridView1.Rows.Count.ToString());

                if (qtRegistro == 0)
                {
                    lblResultado.Text = "Sem registros";

                }
            }
            finally
            {
                Sql.Close();
            }
        }
    }
}